#-*- coding: UTF-8 -*-
from pyramid.httpexceptions import HTTPFound
from pyramid.security import remember
from pyramid.security import forget




from scp.modelo.models import DBSession
from scp.modelo.Proyecto import Proyecto

from pyramid.response import Response
from pyramid.view import view_config
import json

import re

#@view_config(renderer='json')
def proyectos(request):

	print ">>>>>>>>>>>>>Controlador de Proyectos - Inicio>>>>>>>>>>>>>>"
	print "request:"
	print request

	print '>>>>>>>>>>>>>>>request.metodo<<<<<<<<<<<<<<<<<<<<<<'
	
	methodRequest = request.method
	print methodRequest
	
	print '>>>>>>>>>>>>>>request.url<<<<<<<<<<<<<<<<<<<<<<<<<<'
	
	print request.url
	
	
	print '>>>>>>>>>>>>>>>reles_url<<<<<<<<<<<<<<<<<<<'
	
	print '>>>>>>>>>>>>>>request_matchdict<<<<<<<<<<<<'
	
	dicParametros = request.matchdict
	
	print request.matchdict
	print '>>>>>>>>>>>>>>request_matchdict<<<<<<<<<<<<'
	
	proyectos_url = request.route_url('proyectos', operacion=1)
	print proyectos_url
	
	print "parametros abajo..."
	print request.params
	
	print 'request.body'
	print request.body 
	

	print "operaciónnnnnnnn"
	print dicParametros.get('operacion')
	print "operaciónnnnnnnn"
	
	
	if dicParametros.get('operacion') == 'update' or dicParametros.get('operacion') == 'create':
		print 'entre el if de update'
		
		print 'json.loads(request.params[proyecto])'
		proyecto = json.loads(request.params['proyecto'])
		print json.loads(request.params['proyecto'])
		print 'proyecto.data'
		proyectoData = proyecto.get('data')
		print proyecto.get('data')
		print 'proyecto.data.nombreProyecto'
		print proyectoData.get('nombreProyecto')
		
		#print request.params['rol']	
		#print request.json_body
		#print json.loads(request.params['rol'])
		#print request.params['data']
		#print 'json.loads(request.body)'	
		#print json.loads(request.body)
	
	
	#response = Response()
	#response.body = json.dumps(dict(success = True, proyectos = [{'idProyecto':'1', 'nombreProyecto': 'scp', 'descripProyecto':'sistema de control', 'fecIniProyecto':'14/04/2012'}, {'idProyecto':'2', 'nombreProyecto': 'sap', 'descripProyecto':'sistema de administracion', 'fecIniProyecto':'21/04/2012'}]))
	#response.content_type = 'application/json'
	
	print 'dicParametros.get(operacion).find(?):' 
	print dicParametros.get('operacion').find('?')
	
	session = DBSession()
	if dicParametros.get('operacion') == 'view' and request.url.find('?') == -1:
		print 'respondí un diccionario normal'
		return {'content':'Hello!'}	
	elif dicParametros.get('operacion') == 'view':
		proyectosAll = session.query(Proyecto).all()
		
		proyectosArray = []
		for proyectoIter in proyectosAll:
			aux = {'idProyecto': proyectoIter.id, 'nombreProyecto': proyectoIter.nombre, 'descripProyecto':proyectoIter.descripcion, 'fecIniProyecto':proyectoIter.fecha_inicio}
			proyectosArray.append(aux)
		
		responseView = Response()
		responseView.body = json.dumps(dict(success = True, proyectos = proyectosArray))
		responseView.content_type = 'application/json'
		
		print 'respondí con un Responseeeee!!!'
		return responseView
	elif dicParametros.get('operacion') == 'create':
		proyecto = Proyecto()
		proyecto.nombre = proyectoData.get('nombreProyecto')
		proyecto.descripcion = proyectoData.get('descripProyecto')
		proyecto.fecha_inicio = proyectoData.get('fecIniProyecto')
		
		session.add(proyecto)		
		responseCreate = Response()
		responseCreate.body = json.dumps(dict(success = True))
		responseCreate.content_type = 'application/json'
		return responseCreate
		
	elif dicParametros.get('operacion') == 'update':
		proyectoUpdate = session.query(Proyecto).filter_by(id=proyectoData.get('idProyecto')).first()
		
		proyectoUpdate.nombre = proyectoData.get('nombreProyecto')
		proyectoUpdate.descripcion = proyectoData.get('descripProyecto')
		proyectoUpdate.fecha_inicio = proyectoData.get('fecIniProyecto')
		
		responseUpdate = Response()
		responseUpdate.body = json.dumps(dict(success = True))
		responseUpdate.content_type = 'application/json'
		return responseUpdate
		
	elif dicParametros.get('operacion') == 'destroy':
		idProyectoEliminar = json.loads(request.params['param_id'])
		proyectoEliminar = session.query(Proyecto).filter_by(id=idProyectoEliminar).first()
		
		session.delete(proyectoEliminar)
		
		responseDestroy = Response()
		responseDestroy.body = json.dumps(dict(success = True))
		responseDestroy.content_type = 'application/json'
		return responseDestroy
			
